% 1. 设置参数
fs = 192000;                % 采样频率 (1000 Hz)
T = 3;                    % 信号持续时间 (1秒)
t = 0:1/fs:T-1/fs;       % 时间向量
  
% 2. 生成模拟信号
signal = sin(2*pi*57*t+pi/9)+cos(2*pi*46*t+pi/8)+sin(2*pi*37*t+pi/12);     % 生成信号 sin(2*t)


SNR = 20; % 信噪比 (以dB为单位)
signal_noisy = awgn(signal, SNR, 'measured'); % 向信号添加 高斯噪声


% 生成拉普拉斯噪声
mu = 0;                       % 噪声的均值
b = 0.2;                      % 噪声的尺度参数
laplace_noise = mu + b * sign(rand(size(signal)) - 0.5) .* log(1 - 2 * abs(rand(size(signal)) - 0.5));
%signal_noisy = signal + laplace_noise;


% 4. 保存信号、噪声信号和采样频率到 .mat 文件
save('my_signal_with_noise5.mat', 'fs', 't', 'signal', 'signal_noisy'); % 保存 fs, t, signal 和 signal_noisy

% 5. 加载 .mat 文件
loaded_data = load('my_signal_with_noise5.mat'); % 加载 .mat 文件
fs_loaded = loaded_data.fs;                      % 获取采样频率
t_loaded = loaded_data.t;                        % 获取时间向量
signal_loaded = loaded_data.signal;              % 获取原始信号
signal_noisy_loaded = loaded_data.signal_noisy;  % 获取带噪声的信号

% 6. 绘制信号
figure;
subplot(2, 1, 1);
plot(t_loaded, signal_loaded);
title('原始信号: sin(2*t)');
xlabel('时间 (秒)');
ylabel('幅度');
grid on;

subplot(2, 1, 2);
plot(t_loaded, signal_noisy_loaded);
title('带噪声的信号');
xlabel('时间 (秒)');
ylabel('幅度');
grid on;

% 7. 显示加载的采样频率
fprintf('加载的采样频率: %d Hz\n', fs_loaded);